package com.recipedb.recipedb.service;

import com.recipedb.recipedb.entity.UserBrowse;
import com.recipedb.recipedb.entity.Recipe;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Optional;

public interface UserBrowseService {

    UserBrowse createBrowseRecord(Long userId, Long recipeId);
    List<UserBrowse> getBrowseRecordsByUserId(Long userId);
    List<UserBrowse> getAllBrowseRecords();
    boolean deleteBrowseRecord(Long id, Long userId);
    Optional<UserBrowse> getBrowseRecordById(Long id);
    Optional<UserBrowse> getBrowseRecordByUserIdAndRecipeId(Long userId, Long recipeId);
    List<Recipe> getRecipesByUserId(Long userId);

    /**
     * 浏览记录搜索接口（和收藏搜索逻辑对齐）
     * @param userId      用户ID
     * @param keyword     菜谱标题关键词（核心单参数）
     * @param tag         菜谱标签（可选）
     * @param category    菜谱分类（可选）
     * @param ingredient  菜谱食材（可选）
     * @param pageNum     页码（默认1）
     * @param pageSize    每页条数（默认10）
     * @return 分页浏览记录列表
     */
    Page<UserBrowse> searchBrowseRecords(
            Long userId,
            String keyword,
            String tag,
            String category,
            String ingredient,
            Integer pageNum,
            Integer pageSize);
}